package com.qiangesoft.bootcodegen.pojo.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;

/**
 * <p>
 * 数据库表字段配置传输对象
 * </p>
 *
 * @author qiangesoft
 * @date 2024-03-13
 */
@ApiModel(value = "数据库表字段配置传输对象")
@Data
public class BcgTableColumnConfigDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @NotNull(message = "id不能为空")
    @ApiModelProperty(value = "id")
    private Long id;

    @NotBlank(message = "字段名称不能为空")
    @ApiModelProperty(value = "字段名称")
    private String columnName;

    @NotBlank(message = "字段注释不能为空")
    @ApiModelProperty(value = "字段注释")
    private String columnComment;

    @NotBlank(message = "字段类型不能为空")
    @ApiModelProperty(value = "字段类型")
    private String columnType;

    @NotNull(message = "字段是否主键不能为空")
    @ApiModelProperty(value = "字段是否主键")
    private Boolean columnPk;

    @NotNull(message = "字段是否非空不能为空")
    @ApiModelProperty(value = "字段是否非空")
    private Boolean columnNotNull;

    @NotNull(message = "字段是否自增不能为空")
    @ApiModelProperty(value = "字段是否自增")
    private Boolean columnIncrement;

    @NotBlank(message = "Java类型不能为空")
    @ApiModelProperty(value = "Java类型")
    private String javaType;

    @ApiModelProperty(value = "Java类型包名")
    private String javaTypePackage;

    @NotBlank(message = "Java属性不能为空")
    @ApiModelProperty(value = "Java属性")
    private String javaField;

    @ApiModelProperty(value = "Java字典类型")
    private String javaDictType;

    @NotNull(message = "页面表单显示不能为空")
    @ApiModelProperty(value = "页面表单显示")
    private Boolean pageForm;

    @NotNull(message = "页面是否必填不能为空")
    @ApiModelProperty(value = "页面是否必填")
    private Boolean pageFormRequired;

    @NotNull(message = "页面表格是否展示不能为空")
    @ApiModelProperty(value = "页面表格是否展示")
    private Boolean pageTableShow;

    @NotNull(message = "页面查询是否条件不能为空")
    @ApiModelProperty(value = "页面查询是否条件")
    private Boolean pageQuery;

    @ApiModelProperty(value = "页面查询方式")
    private String pageQueryType;

    @NotBlank(message = "页面显示类型不能为空")
    @ApiModelProperty(value = "页面显示类型")
    private String pageHtmlType;

}
